home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / Other Langs / Tickle-4.0 (tcl) / scripts / dbm.tcl < prev    next >
Encoding:
Text File  |  1993-11-19  |  1.1 KB  |  57 lines  |  [TEXT/$Tcl]

  1.  
  2. dbm_open DB SDB.idx SDB.dat
  3.  
  4. dbm_close DB
  5.  
  6. dbm_insert DB "Key3" {DATA --> KEY [Key3]}
  7.  
  8. puts stdout [dbm_getkey DB Key4]
  9.  
  10. puts stdout [dbm_first DB KEY]
  11. puts stdout [catch "dbm_next DB KEY"]
  12. puts stdout $KEY
  13.  
  14. puts stdout [catch "dbm_getkey Key1 DATA"]
  15. puts stdout "[dbm_getkey Key1]"
  16. puts stdout [catch "dbm_getkey $KEY DATA"]
  17.  
  18. proc dbm_list { dbname } { 
  19.  
  20.     set KEY ""
  21.     if {[catch "dbm_first $dbname KEY"]} then {
  22.         puts stdout "$dbname has no keys."
  23.         return
  24.     }
  25.  
  26.     for { } { 1 } { } {
  27.         if {[catch "dbm_getkey $dbname $KEY DATA"]} then {
  28.             puts stdout "error getting key <$KEY>"
  29.         } else {
  30.             puts stdout "KEY <$KEY>  DATA <$DATA>"
  31.         }
  32.  
  33.         if {[catch "dbm_next $dbname KEY"]} then {
  34.             puts stdout "$dbname has no more keys."
  35.             break
  36.         }
  37.     }
  38. }
  39.  
  40. dbm_list DB
  41.  
  42. puts stdout "[dbm_getkey DB Key60]"
  43.  
  44. proc dbm_fill_seq { dbname start end incr } { 
  45.     
  46.     for { set INDEX $start } { $INDEX <= $end } { set INDEX [expr "$INDEX + $incr"] } {
  47.         dbm_insert $dbname "Key$INDEX" "DATA --KEY--> <Key$INDEX>" replace
  48.     }
  49. }
  50.  
  51. dbm_fill_seq DB 10 100 5
  52. dbm_fill_seq DB 33 99 3
  53. dbm_fill_seq DB 300 399 1
  54.  
  55.  
  56.  
  57.